<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Guideline: Using Visual Modeling</title>
<meta name="uma.type" content="Guideline">
<meta name="uma.name" content="using_visual_modeling">
<meta name="uma.presentationName" content="Using Visual Modeling">
<meta name="element_type" content="other">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="_0SsecNr8EdyXE6np2_hUMA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Guideline: Using Visual Modeling</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/guidance.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">This guideline provides recommendations on how to use visual modeling when building a system.</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/guidelines/abstract_away_complexity_DBF13AE6.html" guid="_we3F4ACpEdu8m4dIntu6jA">Abstract Away Complexity</a>
</li>
<li>
<a href="./../../../practice.tech.evolutionary_arch.base/guidances/guidelines/modeling_the_arch_8BE6E55B.html" guid="_HrgUQNcuEdy1nJEYZGzN4A">Modeling the Architecture</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><p>
    When applying visual modeling, you can use various techniques:
</p>
<ul>
    <li>
        <strong>Identify the key perspectives:</strong> Focus on modeling the things that count. Few (if any) projects
        benefit from modeling the entire design to a great level of detail. Make sure that you understand why you are
        modeling something and who will benefit.
    </li>
    <li>
        <strong>Communicate key architectural perspectives:</strong> Even if you choose to model very little&nbsp;of your
        design, it is often advantageous to produce diagrams that communicate the key architectural aspects of the system.
        Conveying the "big picture" to the rest of the team helps them understand the overall approach and develop cohesive
        software.&nbsp;
    </li>
    <li>
        <strong>Sketch the design:</strong> Not all models need to be detailed completely and presented in a software
        modeling tool. It is often perfectly acceptable (if not desirable) to produce hand-drawn sketches on paper or on a
        whiteboard when you are exploring and communicating the architecture and design with your team. You can use a
        digital camera or an electronic whiteboard to capture these diagrams and share them. For many small projects, this
        is often all you need. See <a href="http://www.agilemodeling.com/">http://www.agilemodeling.com/</a> for more
        information.
    </li>
    <li>
        <strong>Use a modeling tool as needed</strong>:&nbsp;If the team members are changing models throughout the
        project, sharing patterns/structure, debugging design, describing behavior, etc., then static photos or paper will
        become difficult to work with. The team may want to capture design in a software modeling tool. Other than
        communicating the design to the team, another benefit of a such a tool is the&nbsp;generation of structural code
        from the models. Many software development tools allow you to view the code as models, making it easier to
        comprehend static and dynamic aspects of a complex code base.
    </li>
    <li>
        <strong>Agree on a standard notation:</strong> In a team environment, it is important that others can understand
        your diagrams without much explanation. Choosing a standard notation enables others to quickly comprehend your
        diagrams without ambiguity. The Unified Modeling Language (UML) provides an industry-standard approach to software
        modeling and is an example of a widely understood notation.
    </li>
</ul>For more information, see <a class="elementLinkWithType" href="./../../../core.tech.common.extend_supp/guidances/concepts/visual_modeling_2C089766.html" guid="_0XY6UMlgEdmt3adZL5Dmdw">Concept: Visual Modeling</a>.<br /></td>
</tr>
</table>
</div>
<div class="sectionHeading">More Information</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Concepts</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../core.tech.common.extend_supp/guidances/concepts/visual_modeling_2C089766.html" guid="_0XY6UMlgEdmt3adZL5Dmdw">Visual Modeling</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"><p> This program and the accompanying materials are made available under the<br />
  <a href="http://www.eclipse.org/org/documents/epl-v10.php" target="_blank">Eclipse 
  Public License V1.0</a>, which accompanies this distribution. </p><p/><p> <a class="elementLink" href="./../../../core.default.release_copyright.base/guidances/supportingmaterials/openup_copyright_C3031062.html" guid="_UaGfECcTEduSX6N2jUafGA">OpenUP Copyright</a></p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
